package controller.servletCadastro;

import java.io.IOException;
import java.util.Date;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.classDAO.ClienteDAO;
import model.classDAO.CobrancaDAO;
import model.classDAO.PeriodoDAO;
import model.classDAO.TipoServicoDAO;
import model.classes.Cliente;
import model.classes.Cobranca;
import model.classes.Periodo;
import model.classes.Servico;
import model.classes.TipoServico;
import model.factory.FactoryDAO;

public class ServletCadastroCobranca extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = -5492813010931449448L;
	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
	{
		RequestDispatcher rd = null;
		String cliente = request.getParameter("cliente");
		String nome = request.getParameter("nome");
		String descricao = request.getParameter("descricao");
		String descricaoPeriodo = request.getParameter("descricaoPeriodo");
		String duracao = request.getParameter("duracao");
		//String servico2 = request.getParameter("servico");
		String data = request.getParameter("data");
		String codigoboleto = request.getParameter("codigoboleto");
		String datapagamento = request.getParameter("datapagamento");
		
		String pago = request.getParameter("pago");
		String diasatrasados = request.getParameter("diasatrasados");
		String juros = request.getParameter("juros");
		
		Boolean pagoo = false;
		ClienteDAO cdao = FactoryDAO.getClienteDAO();
		Cliente entidade =  new Cliente();
		entidade.setId(Long.parseLong(cliente));
		cdao.pesquisarID(entidade);
		@SuppressWarnings("deprecation")
		Date dataC = new Date(datapagamento);
		@SuppressWarnings("deprecation")
		Date dataV = new Date(data);
		Cobranca cobranca = new Cobranca();
		cobranca.setAtraso(Integer.parseInt(diasatrasados));
		cobranca.setCliente(entidade);
		cobranca.setCodigoBoleto(codigoboleto);
		cobranca.setDataCobranca(dataC);
		cobranca.setDataVencimento(dataV);
		cobranca.setJuros(Double.parseDouble(juros));
		
		if(pago.equals("sim"))
			pagoo = true;
		
		cobranca.setPago(pagoo);
		
		CobrancaDAO cobdao = FactoryDAO.getCobracaDAO();
		cobdao.cadastrar(cobranca);
		long ace = 0;
 		if(duracao != null || !duracao.equals("") || duracao.equals("0"))
 			ace = Long.parseLong(duracao);
 		
		TipoServico servico = new TipoServico();
		Periodo periodo = new Periodo();
		
		servico.setNome(nome);
		servico.setDescricao(descricao);
		periodo.setDescricao(descricaoPeriodo);
		periodo.setDuracao(ace);
		
		TipoServicoDAO tsDAO = FactoryDAO.getTipoServicoDAO();
		tsDAO.cadastrar(servico);
		
		PeriodoDAO pDAO = FactoryDAO.getPeriodoDAO();
		pDAO.cadastrar(periodo);
		
		rd = request.getRequestDispatcher("/index.jsp");
		try {
			rd.forward(request, response);
		} catch (ServletException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}
